﻿using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Rescue_of_the_Dwarvenzombies.Rendering.RenderStates;

namespace Rescue_of_the_Dwarvenzombies.Rendering
{
    /// <summary>
    /// Interface for the render manager
    /// </summary>
    interface IRenderManager
    {
        /// <summary>
        /// Gets the pixel data dictionary, used in the collision detection.
        /// It contains several other dictionaries with pixel data for the different sprites.
        /// Access to the inner dictionary is done by passing a source rectangle as key.
        /// </summary>
        Dictionary<string, Dictionary<Rectangle, Color[]>> PixelDataDictionary { get; }

        /// <summary>
        /// Gets the texture dictionary. All textures are stored with the name (string) as the key
        /// </summary>
        Dictionary<string, Texture2D> TextureDictionary { get; }

        /// <summary>
        /// Gets or sets the state of Render manager.
        /// </summary>
        RenderState CurrentState { get; set; }

        /// <summary>
        /// Gets the render state manager.
        /// </summary>
        RenderStateManager RenderStateManager { get; }
    }
}